package com.iplant.basic.service.po.bfc;

import java.io.Serializable;

import com.iplant.base.po.BasePO;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.iplant.base.po.enums.DBSchemas;
import com.iplant.base.utils.annotation.condition.DBCondition;
import com.iplant.base.utils.annotation.field.DBField;
import com.iplant.base.utils.annotation.join.DBJoin;
import com.iplant.base.utils.annotation.po.DBBasePO;

@DBBasePO(TableName = "mbs_menu_item", CheckName = {"GroupID,Name"}, Schemas = DBSchemas.Basic, Code = false,
        AllowDeleteTable = true)
public class BFCHomePageModule extends BasePO implements Serializable {

    /**
     *
     */
    private static final long serialVersionUID = 1L;

    @DBCondition
    @DBField
    public int GroupID;

    @DBJoin(name = "Name", tableName = "mbs_menu_group", tableAsName = "g1",
            MainTableField = "GroupID", JoinMode = DBJoin.DBJoinMode.Inner)
    public String GroupName = "";

    public int MessageCount;

    @DBCondition
    @DBField
    public int EventModule;
    @DBField
    public String Icon;
    @DBField
    public String IconColor = "";
    @DBField
    public String Icon_S = "";
    @DBField
    public String Url;

    @DBCondition
    @DBJoin(name = "Type", tableName = "mbs_menu_group", tableAsName = "g1",
            MainTableField = "GroupID", JoinMode = DBJoin.DBJoinMode.Inner)
    public int Type;

//    @DBCondition
//    @DBJoin(name = "Grad",tableName = "mbs_menu_group",tableAsName = "g1",
//            MainTableField = "GroupID",JoinMode = DBJoin.DBJoinMode.Inner)
//    public int Grad = 0;

    /**
     * 权限ID  为0不做权限控制
     */
    @DBField
    public int RoleID = 0;

    @DBCondition
    @DBField
    public int IsDefault;

    @DBField
    public String SecretKey = "";

    @DBField
    public int OrderNum;

    @DBCondition
    @DBJoin(name = "ProjectName", tableName = "mbs_menu_group", tableAsName = "g1",
            MainTableField = "GroupID", JoinMode = DBJoin.DBJoinMode.Inner)
    public String ProjectName = "";

    /**
     * 用户菜单显示控制
     */
    @DBCondition
    @DBField
    public int UserEnable = 0;
    /**
     * 管理员菜单显示控制
     */
    @DBCondition
    @DBField
    public int AdminEnable = 0;
    /**
     * 工程师菜单显示控制
     */
    @DBCondition
    @DBField
    public int EngineerEnable = 0;
    /**
     * 系统菜单显示控制
     */
    @DBCondition
    @DBField
    public int SystemEnable = 0;

    @JsonProperty("GroupID")
    public int getGroupID() {
        return GroupID;
    }

    public void setGroupID(int groupID) {
        GroupID = groupID;
    }

    @JsonProperty("MessageCount")
    public int getMessageCount() {
        return MessageCount;
    }

    public void setMessageCount(int messageCount) {
        MessageCount = messageCount;
    }

    @JsonProperty("Icon")
    public String getIcon() {
        return Icon;
    }

    public void setIcon(String icon) {
        Icon = icon;
    }

    @JsonProperty("Url")
    public String getUrl() {
        return Url;
    }

    public void setUrl(String url) {
        Url = url;
    }

    @JsonProperty("Type")
    public int getType() {
        return Type;
    }

    public void setType(int type) {
        Type = type;
    }


    @JsonProperty("IsDefault")
    public int getIsDefault() {
        return IsDefault;
    }

    public void setIsDefault(int isDefault) {
        IsDefault = isDefault;
    }

    @JsonProperty("SecretKey")
    public String getSecretKey() {
        return SecretKey;
    }

    public void setSecretKey(String secretKey) {
        SecretKey = secretKey;
    }

    @JsonProperty("OrderNum")
    public int getOrderNum() {
        return OrderNum;
    }

    public void setOrderNum(int orderNum) {
        OrderNum = orderNum;
    }

    @JsonProperty("EventModule")
    public int getEventModule() {
        return EventModule;
    }

    public void setEventModule(int eventModule) {
        EventModule = eventModule;
    }

    public BFCHomePageModule() {
    }

//    @JsonProperty("Grad")
//    public int getGrad() {
//        return Grad;
//    }
//
//    public void setGrad(int grad) {
//        Grad = grad;
//    }

    @JsonProperty("Icon_S")
    public String getIcon_S() {
        return Icon_S;
    }

    public void setIcon_S(String icon_S) {
        Icon_S = icon_S;
    }

    @JsonProperty("RoleID")
    public int getRoleID() {
        return RoleID;
    }

    public void setRoleID(int roleID) {
        RoleID = roleID;
    }

    @JsonProperty("IconColor")
    public String getIconColor() {
        return IconColor;
    }

    public void setIconColor(String iconColor) {
        IconColor = iconColor;
    }

    @JsonProperty("ProjectName")
    public String getProjectName() {
        return ProjectName;
    }

    public void setProjectName(String projectName) {
        ProjectName = projectName;
    }

    @JsonProperty("GroupName")
    public String getGroupName() {
        return GroupName;
    }

    public void setGroupName(String groupName) {
        GroupName = groupName;
    }

    @JsonProperty("UserEnable")
    public int getUserEnable() {
        return UserEnable;
    }

    public void setUserEnable(int userEnable) {
        UserEnable = userEnable;
    }

    @JsonProperty("AdminEnable")
    public int getAdminEnable() {
        return AdminEnable;
    }

    public void setAdminEnable(int adminEnable) {
        AdminEnable = adminEnable;
    }

    @JsonProperty("EngineerEnable")
    public int getEngineerEnable() {
        return EngineerEnable;
    }

    public void setEngineerEnable(int engineerEnable) {
        EngineerEnable = engineerEnable;
    }

    @JsonProperty("SystemEnable")
    public int getSystemEnable() {
        return SystemEnable;
    }

    public void setSystemEnable(int systemEnable) {
        SystemEnable = systemEnable;
    }
}
